package br.com.controller;

import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.dao.PessoaDAO;
import br.com.model.Pessoa;

/**
 * @author ramonsv89
 *
 */

@WebServlet("/AgendaController")
public class AgendaController extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public AgendaController() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		// vai pra tela de cadastro
		if(request.getParameter("add")!= null){
			request.getRequestDispatcher("/jsp/adicionarPessoa.jsp").forward(request, response);
		// vai pra tela de editar cadastro
		}else if(request.getParameter("editar")!= null){
			System.out.println("/editar");
			try {
				getPessoa(request, response);
				request.getRequestDispatcher("/jsp/editarPessoa.jsp").forward(request, response);
			} catch (SQLException e) {
				e.printStackTrace();
			}
			
		// excluir pessoa	
		}else if(request.getParameter("excluir")!= null){			
			System.out.println("/exluir");
			
			try {
				remover(request, response);
			} catch (SQLException e) {
				e.printStackTrace();
			}
			request.setAttribute("remove", "Pessoa removida com sucesso!");
			request.getRequestDispatcher("/jsp/home.jsp").forward(request, response);
		// cadastra pessoa	
		}else if(request.getParameter("cadastrar")!= null){
			adicionar(request, response);
			request.setAttribute("adicionado", "Pessoa adicionada com sucesso!");
			request.getRequestDispatcher("/jsp/home.jsp").forward(request, response);
		// exibe lista pessoa	
		}else if(request.getParameter("exibir")!= null){
			try {
				exibir(request, response);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		// atualiza pessoa			
		}else if(request.getParameter("atualizar")!= null){
			
			try {
				editar(request, response);
			} catch (SQLException e) {
				e.printStackTrace();
			}
			request.setAttribute("sucess", "Pessoa editada com sucesso!");
			request.getRequestDispatcher("/jsp/home.jsp").forward(request, response);
		}
	}
	
	// adicionar pessoa
	public void adicionar(HttpServletRequest request, HttpServletResponse response){ 
		
		Pessoa pessoa = new Pessoa();
		PessoaDAO pessoaDao = new PessoaDAO();
		
		pessoa.setNome(request.getParameter("nome"));
		pessoa.setSobreNome(request.getParameter("sobrenome"));
		pessoa.setEmail(request.getParameter("email"));
		pessoa.setTelefone(Integer.parseInt(request.getParameter("telefone")));
		
		try {
			pessoaDao.adicionar(pessoa);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	// editar pessoa
	public void editar(HttpServletRequest request, HttpServletResponse response) throws SQLException, IOException, ServletException{
		
		Pessoa pessoa = new Pessoa();
		PessoaDAO pessoaDao = new PessoaDAO();
		
		pessoa.setNome(request.getParameter("nome"));
		pessoa.setSobreNome(request.getParameter("sobrenome"));
		pessoa.setEmail(request.getParameter("email"));
		pessoa.setTelefone(Integer.parseInt(request.getParameter("telefone")));
		pessoa.setId(Integer.parseInt(request.getParameter("id")));
		
		pessoaDao.editar(pessoa);
	}
	// remover pessoa
	public void remover(HttpServletRequest request, HttpServletResponse response) throws SQLException, IOException, ServletException{
		
		PessoaDAO pessoaDao = new PessoaDAO();
		
		int id = 0; 
		id = Integer.parseInt(request.getParameter("id"));
		pessoaDao.src(id);
		
		List<Pessoa> lista = (List<Pessoa>) pessoaDao.src(id);
		
		Pessoa pessoa = (Pessoa)lista.get(0);
		pessoaDao.excluir(pessoa);
	}
	// pega id da pessoa	
	public void getPessoa(HttpServletRequest request, HttpServletResponse response) throws SQLException, IOException, ServletException{
		//Pessoa pessoa = new Pessoa();
		PessoaDAO pessoaDao = new PessoaDAO();
		
		int id = 0; 
		id = Integer.parseInt(request.getParameter("id"));
		System.out.println("id = "+id);
		List<Pessoa> lista = (List<Pessoa>) pessoaDao.src(id);
		
		for(Pessoa pessoa : lista){
			request.setAttribute("id",pessoa.getId());
			request.setAttribute("nome",pessoa.getNome());
			request.setAttribute("sobrenome", pessoa.getSobreNome());
			request.setAttribute("email", pessoa.getEmail());
			request.setAttribute("telefone", pessoa.getTelefone());
		}
	
	}
	// exibe todas as pessoas
	public void exibir(HttpServletRequest request, HttpServletResponse response) throws SQLException, IOException, ServletException{
		PessoaDAO pessoaDao = new PessoaDAO();
		List<Pessoa> lista = pessoaDao.exibir();
		request.setAttribute("lista", lista);
		request.getRequestDispatcher("/jsp/exibirPessoa.jsp").forward(request, response);
	}
		
}
